// 测试新字段功能
import axios from 'axios';

console.log('🔍 测试新字段功能...');

// 测试配置
const API_BASE_URL = 'http://localhost:4112';

// 创建axios实例
const apiClient = axios.create({
  baseURL: API_BASE_URL,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  }
});

// 测试新字段是否存在
async function testNewFields() {
  try {
    console.log('📡 请求模型数据...');
    
    const response = await apiClient.get('/model/list', {
      params: {
        search: '',
        occ: 'bladePoint'
      }
    });
    
    console.log('✅ API请求成功');
    console.log(`状态码: ${response.data.code}`);
    console.log(`消息: ${response.data.msg}`);
    
    if (response.data.code === 200 && response.data.data && response.data.data.length > 0) {
      const firstModel = response.data.data[0];
      console.log('\n📦 第一个模型数据:');
      console.log(`  ID: ${firstModel.MId}`);
      console.log(`  名称: ${firstModel.MName}`);
      console.log(`  图片: ${firstModel.MImg}`);
      console.log(`  职业: ${firstModel.MOccupation}`);
      
      // 检查新字段
      console.log('\n🔍 检查新字段:');
      console.log(`  模型来源: ${firstModel.MModelSource || '未设置'}`);
      console.log(`  骨骼绑定: ${firstModel.MBoneBinding || '未设置'}`);
      console.log(`  物理绑定: ${firstModel.MPhysicsBinding || '未设置'}`);
      console.log(`  表情制作: ${firstModel.MExpressionMaking || '未设置'}`);
      
      // 验证字段完整性
      const newFields = ['MModelSource', 'MBoneBinding', 'MPhysicsBinding', 'MExpressionMaking'];
      const missingFields = newFields.filter(field => !(field in firstModel));
      
      if (missingFields.length === 0) {
        console.log('\n✅ 所有新字段都存在');
        console.log('✅ 前端使用说明功能可以正常工作');
      } else {
        console.log('\n❌ 缺少字段:', missingFields);
        console.log('❌ 需要检查数据库表结构或后端代码');
      }
      
      // 检查字段值
      const hasValidValues = newFields.every(field => 
        firstModel[field] && firstModel[field].trim() !== ''
      );
      
      if (hasValidValues) {
        console.log('✅ 所有新字段都有有效值');
      } else {
        console.log('⚠️ 部分字段值为空，可能需要更新数据库数据');
      }
      
    } else {
      console.log('❌ 没有获取到模型数据');
    }
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message);
    
    if (error.code === 'ECONNREFUSED') {
      console.log('💡 提示: 请确保后端服务正在运行（端口4112）');
    }
  }
}

// 测试数据库更新脚本
async function testDatabaseUpdate() {
  console.log('\n📋 数据库更新建议:');
  console.log('1. 执行SQL脚本: ModelsResourceSharingStationServer/database/update_model_list_table.sql');
  console.log('2. 更新现有数据的默认值');
  console.log('3. 重启后端服务');
  console.log('4. 重新运行此测试脚本');
}

// 运行测试
console.log('='.repeat(60));
console.log('   新字段功能测试');
console.log('='.repeat(60));

testNewFields().then(() => {
  testDatabaseUpdate();
  console.log('\n' + '='.repeat(60));
  console.log('   测试完成');
  console.log('='.repeat(60));
}).catch(console.error);
